<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
  // 变量的数据类型

  // 1. 基础类型(简单类型)

  // 1.1 数字(数值类型)类型
  // 数字类型又可以分成二进制，八进制，十进制(生活中使用)和十六进制
  // 不管这个数据是个几进制，在浏览器都会是十进制显示

  // 二进制就是由0和1组成, 需要用0b开头
  // var num1 = 0b1101;
  // console.log(num1); // 13

  // 八进制就是由0-7组成, 需要用0o开头
  // var num2 = 0o15;
  // console.log(num2); // 13

  // 十进制0-9，生活中的数字
  // var num3 = 13;
  // console.log(num3);

  // 十六进制0-9a-f组成, 需要用0x开头
  // var num4 = 0xff;
  // console.log(num4);




  // 1.2 字符串类型
  // 被双引号或者单引号包裹的就是字符串类型
  // var a = "100"; // 字符100
  // var b = "你好";
  // var c = "true"; // 英文字符true
  // var d = 100;
  // var e = "100";
  // console.log(d); // 在浏览器显示的时候数字是蓝色的
  // console.log(e); // 字符串是黑色的
  // console.log(d, e); // 一起显示的时候，字符串是会加引号的

  // 字符串的嵌套关系
  // 双引号里面要用单引号，单引号里面用双引号
  // console.log("张三说：'大家好, 我分享一本书, 叫js入门基础'。");




  // 1.3 布尔值类型
  // 布尔值只有两个值 true(真) 和 false(假)
  // var bool1 = true;
  // var bool2 = false;
  // console.log(bool1, bool2);



  // 1.4 undefined类型
  // undefined类型js的一种特殊的类型，表示的是未初始化(未赋值)或者属性不存在
  // var a;
  // console.log(a);
  // console.log(window.hehe);



  // 1.5 null类型
  // null也是js的特殊类型，表示空对象
  // var a = null;
  // console.log(a);


  // 1.6 symbol类型
  // 表示的是一个独一无二的值
  // 可以用于对象的属性使用


  // 1.7 bigInt类型
  // 解决数字的运算时的安全范围的问题(-2^53到2^53)
  // console.log(Math.pow(2, 53))
  // console.log(Math.pow(2, 53) + 1)
  // console.log(Math.pow(2, 53) + 2)

  


  // 2. 引用类型(复杂类型) - 了解
  // object
  // 数组/对象/函数等等
  // var arr = ["张三", "里斯", "王五"];
  // var obj = {
  //   name: "赵六",
  //   age: 18,
  //   sex: "男"
  // }



  // 变量是松散型的，可以改成任意的其他类型
  var a = "张三";
  a = "里斯";
  a = 100;
</script>